In recent years, use of computers has increased dramatically worldwide. Users of computers utilize computer programs for a variety of purposes including word processing, data base management, desktop publishing, and the like. In order to facilitate more efficient utilization of computer programs, a variety of commands is typically provided in each computer program for allowing a user to manipulate data and text based on the particular application and the needs of the user. For example, a user of a word processing program may wish to open a variety of documents or files, edit those documents or files, and arrange the layout or print characteristics of text contained in those documents or files according to the particular needs of the user.
The available functionality of a computer application program is typically accessed by selecting commands within a menu displayed on a user interface of the application program. As designers of computer application programs provide more and more commands and menus, these menus become "cluttered" and confusing to users. This cluttering of menus with large numbers of commands (often not utilized by the user of the program application) is often referred to as "bloat."
Some application programs include the capability to use "short" sets of menus which expose only a subset of the available commands as opposed to "long" sets of menus which expose the full set of available commands in a particular menu. The content of such short menus is often predetermined and static. Because the commands available to the user in such short menus often are static, the user must either use the long menu or the preset short menu, but the user is incapable of changing the content of the short menu to provide a more desirable set of commands.
Some computer program applications allow the user to customize the menus and the commands that appear on the menus. This allows the advanced user to remove commands they do not use and add additional commands that the program designers did not place on the menus by default. This is normally done through a dialog which allows the user to drag unwanted controls off the menus. However, if the user ever wants one of the removed controls or commands back, the user must search for the desired control and add it back to the appropriate menu. Customizing the menus can be a complicated and confusing task. Unfortunately, most users either lack the sophistication to perform such menu customization, or they are afraid to delete currently unneeded commands or controls in the event that they might need those commands or controls at some point in the future.
Therefore, there is a need for a system and method for dynamically changing the available commands in a given short menu based upon the particular needs and utilization behavior of the user.
There is further a need for a system and method that can dynamically add to and subtract from available commands provided in a short menu without the need for the user to deliberately and manually select from a preset long menu or from a preset short menu.
There is further a need for a system and method for creating and updating a record of usage of menu commands added to a short menu where the record is compact and computer memory efficient.